package org.rainbowinverted.charging.device.connect.bl.server.message.in;

import lombok.Builder;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 充电结束原因
 *
 * @author huaiping
 */
@Data
@Builder
public class BlDeviceChargeFinishReasonIn implements Serializable {
    /**
     * 余额不足
     */
    private Boolean balanceInsufficient;
    /**
     * 远程关闭
     */
    private Boolean remoteClose;
    /**
     * 刷卡主动关闭
     */
    private Boolean cardManualClose;
    /**
     * 终端关闭
     */
    private Boolean terminalClose;
    /**
     * 漏电
     */
    private Boolean leakElectricity;
    /**
     * 过温结束
     */
    private Boolean overTemp;
    /**
     * 电表通讯错误
     */
    private Boolean meterError;
    /**
     * 电量已满
     */
    private Boolean batteryFull;
    /**
     * 拔枪
     */
    private Boolean pullOutGun;
    /**
     * 紧急按钮
     */
    private Boolean emergencyButton;
    /**
     * 过载 空载
     */
    private Boolean overload;
    /**
     * 空转
     */
    private Boolean idling;
    /**
     * 时间用完
     */
    private Boolean outOfTime;
    /**
     * 电量用完
     */
    private Boolean outOfPower;
    /**
     * 程序关闭
     */
    private Boolean programClose;

    public static BlDeviceChargeFinishReasonIn buildDefault() {
        return BlDeviceChargeFinishReasonIn.builder().
                balanceInsufficient(Boolean.FALSE).
                remoteClose(Boolean.FALSE).
                cardManualClose(Boolean.FALSE).
                terminalClose(Boolean.FALSE).
                leakElectricity(Boolean.FALSE).
                overTemp(Boolean.FALSE).
                meterError(Boolean.FALSE).
                batteryFull(Boolean.FALSE).
                pullOutGun(Boolean.FALSE).
                emergencyButton(Boolean.FALSE).
                overload(Boolean.FALSE).
                idling(Boolean.FALSE).
                outOfTime(Boolean.FALSE).
                outOfPower(Boolean.FALSE).
                programClose(Boolean.FALSE).build();
    }
}
